package demo;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;


//测试虚拟机上的能不能使用。
public class FileSystemDemo2 {
    private FileSystem fs;

    @Before
    public void init() throws Exception {
        // 构造一个配置参数对象，设置一个参数：要访问的HDFS的URI
        Configuration conf = new Configuration();
        // 指定使用HDFS访问
        conf.set("fs.defaultFS", "hdfs://192.168.1.129:9000");
        // 进行客户端身份的设置(root为虚拟机的用户名，hadoop集群节点的其中一个都可以)
        System.setProperty("HADOOP_USER_NAME", "root");
        // 通过FileSystem的静态get()方法获取HDFS文件系统客户端对象
        fs = org.apache.hadoop.fs.FileSystem.get(conf);
    }

    @After
    public void close() throws IOException {
        //关闭资源
        fs.close();
    }

    /**
     * 上传
     * @throws IOException
     */
    @Test
    public void testOkDemo() throws IOException {
        fs.copyFromLocalFile(new Path("C:\\Users\\Administrator\\Desktop\\temp2.txt"), new Path("/code1"));
    }

    @Test
    public void testDown() throws IOException {
        fs.copyToLocalFile(new Path("/code1"),new Path("E:\\temp.txt"));
    }
}
